package com.dh.design.factory;

/**
 * @author dh
 * @date 2020/10/31 14:40
 * @Description: 工厂模式
 * 步骤一：创建一个接口（Shape）
 * 步骤二：创建实现接口的实体类（Rectangle、Square、Circle）
 * 步骤三：创建一个工厂，生成基于给定信息的实体类的对象（ShapeFactory）
 * 步骤四：使用该工厂，通过传递类型信息来获取实体类的对象（FactoryPatternDemo）
 */
public class FactoryPatternDemo {

    public static void main(String[] args) {
        ShapeFactory shapeFactory = new ShapeFactory();

        //获取 Rectangle 的对象，并调用它的 draw 方法
        Shape rectangle = shapeFactory.getShape("Rectangle");
        rectangle.draw();

        //获取 Square 的对象，并调用它的 draw 方法
        Shape square = shapeFactory.getShape("Square");
        square.draw();

        //获取 Circle 的对象，并调用它的 draw 方法
        Shape circle = shapeFactory.getShape("Circle");
        circle.draw();
    }
}
